Distributed storage systems store data within a non-transitory data store overlaying one or more memory locations. In some examples, the non-transitory data store includes one or more tables for arranging the data in the form of records and attributes for each record. A data store management system may execute write transactions to put data into the data store and execute read transactions where the data is queried and retrieved from the data store. Here, the writer atomically updates the data into the non-transitory data store in a single operation, and subsequent readers retrieve the atomically updated data. Atomic operations, however, often prevent readers from getting data from the data store while a writer is concurrently putting data into the data store, and vice versa. Thus, bottlenecking often results due to freezing one code path's access to the data in the data store while allowing another code path to access the data in the data store. In other examples, when write transactions execute during read transactions in progress, the data the reader gets is often a copy that is incomplete or inconsistent due to the intervening write transaction.